1> if 判断

① 基本语法

(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格

(2)if后要有空格

if [ 条件判断式 ];then 
  程序 
fi 
或
if [ 条件判断式 ] 
  then 
    程序 
fi

② 实例

#!/bin/bash

if [ $1 -eq "name" ]
then
        echo "name ok"
elif [ $1 -eq "passwd" ]
then
        echo "pass ok"
fi

2> case 语句

① 基本语法

case $变量名 in 
  "值1") 
    如果变量的值等于值1,则执行程序1 
    ;; 
  "值2") 
    如果变量的值等于值2,则执行程序2 
    ;; 
  …省略其他分支… 
  *) 
    如果变量的值都不是以上的值,则执行此程序 
    ;; 
esac
  • case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束
  • 双分号“;;”表示命令序列结束,相当于break
  • 最后的“*)”表示默认模式,相当于default

② 实例

!/bin/bash

case $1 in
"1")
        echo "zhang"
;;

"2")
        echo "li"
;;
*)
        echo "wang"
;;
esac

3> for 循环

① 基本语法1

for (( 初始值;循环控制条件;变量变化 )) 
  do 
    程序 
  done

② 实例1

#!/bin/bash

s=0
for((i=0;i

③ 基本语法2

for 变量 in 值1 值2 值3… 
  do 
    程序 
  done

④ 实例2

#!/bin/bash

for i in $*
    do
      echo "数字: $i "
    done

⑤ 实例 3

$*和$@都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$1 $2 …$n的形式输出所有参数。

$ vim for.sh
#!/bin/bash 

for i in $*
do
      echo "hello $i "
done

for j in $@
do      
        echo "hello $j"
done


$ bash for.sh C++ java

hello C++
hello java
hello C++
hello java

⑥ 实例 4

当它们被双引号“”包含时,“$*”会将所有的参数作为一个整体,以“$1 $2 …$n”的形式输出所有参数;

“$@”会将各个参数分开,以“$1” “$2”…”$n”的形式输出所有参数。

$ vim for.sh
#!/bin/bash 

for i in "$*
do
      echo "hello $i "
done

for j in "$@
do      
        echo "hello $j"
done


$ bash for.sh C++ java

hello C++ java
hello C++
hello java

4> while 循环

① 基本语法

while [ 条件判断式 ] 
  do 
    程序
  done

② 实例

#!/bin/bash
s=0
i=1
while [ $i -le 100 ]
do
        s=$[$s+$i]
        i=$[$i+1]
done

echo $s

5> until 循环

① 基本语法

until [条件表达式]
    do
        程序
    done